﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;

namespace WordpressRestApi
{
    /// <summary>User metadata.</summary>
    public class UserMetadataInfo
    {
        /// <summary>User ID.</summary>
        public int ID { get; set; }

        /// <summary>User display name.</summary>
        [JsonProperty("display_name")]
        public string DisplayName { get; set; }

        /// <summary>User name.</summary>
        [JsonProperty("username")]
        public string UserName { get; set; }

        /// <summary>User email.</summary>
        [JsonProperty("email")]
        public string Email { get; set; }

        /// <summary>Primary blog ID.</summary>
        [JsonProperty("primary_blog")]
        public int PrimirayBlogID { get; set; }

        /// <summary>User language.</summary>
        [JsonProperty("language")]
        public string Language { get; set; }

        /// <summary>Url of the Gravatar image.</summary>
        [JsonProperty("avatar_URL")]
        public string GravatarImageUrl { get; set; }

        /// <summary>Url of the Gravatar profile.</summary>
        [JsonProperty("profile_URL")]
        public string GravatarProfileUrl { get; set; }

        /// <summary>Has the account been verified (via WordPress.com Connect)?</summary>
        [JsonProperty("verified")]
        public bool IsVerified { get; set; }

        /// <summary>Has the account been verified (via email)?</summary>
        [JsonProperty("email_verified")]
        public bool IsEmailVerified { get; set; }

        /// <summary>Datetime the user joined WordPress.com</summary>
        [JsonProperty("date")]
        public DateTime Date { get; set; }

        /// <summary>Number of sites where the user is a member.</summary>
        [JsonProperty("site_count")]
        public int SiteCount { get; set; }

        /// <summary>Number of sites where the user is a member, set to visible in user settings.</summary>
        [JsonProperty("visible_site_count")]
        public int VisibleSiteCount { get; set; }

        /// <summary>Does the account have unseen notifications?</summary>
        [JsonProperty("has_unseen_notes")]
        public bool HasUnseenNotes { get; set; }

        /// <summary>Notification type slug for newest unseen notification or blank if no unseen notes.</summary>
        [JsonProperty("newest_note_type")]
        public string NewestNoteType { get; set; }

        /// <summary>If this is a phone account then the user doenst have a verified email address.</summary>
        [JsonProperty("phone_account")]
        public bool IsPhoneAccount { get; set; }
    }
}